The field of the invention is medical imaging methods and systems. More particularly, the invention relates to a system and method for facilitating the communication of data between applications running on a distributed medical scanner/workstation platform and repositories that can exist as part of or in communication with the scanner/workstation platform.
Conventional medical scanner/workstation platforms can include a variety of different repositories, that is, devices or subsystems that can receive, provide and store data. Such repositories, for example, can include databases, archive, networks and printers. With the increasing complexity of modern medical scanner/workstation platforms, and the increasing diversity in the types and numbers of such repositories that are employed in such platforms, the complexity in communicating information to and from such repositories on the platforms also is increased.
In particular, applications that are operating on or in communication with the medical scanner/workstation platforms must be able to communicate with the different repositories even though the different repositories operate in accordance with different communication protocols. In conventional systems, this requires that each application be aware of the type of repository that it is dealing with or needs to deal with, and also be aware of the type of data being communicated.
Additionally, more than one repository can potentially be located on a single host, or conversely multiple repositories can be located on different local or remote hosts that are in contact with one another by way of a network such as an intranet or the internet. As a result, applications must further be capable of dealing with repositories that are located at a variety of positions, that are located on the same or different hosts, or that are separated from the applications by a variety of different networking and other communication protocols (including internet and intranet protocols).
In order for applications to be able to communicate with a multiplicity of different repositories that can operate in accordance with a variety of different communication protocols and can be located at a variety of different positions, the applications require large amounts of complex programming. In particular, the applications typically must include a large number of translation programs or Application Program Interfaces (APIs) that allow for such communication with various repositories operating over various media via various communication protocols.
Designing and programming such APIs is a significant cost in the design and operation of modern distributed medical scanner/workstation platforms. The costs are particularly high insofar as, when the behavior or technology of a given repository is modified, when new repositories are added to the scanner/workstation platforms, or when the communicated data types are extended or otherwise changed, the APIs can require extensive changes in order for existing applications to remain compatible with the new/modified repositories.
Therefore, given the costs associated with the designing and programming of such APIs, it would be advantageous if a new system and method was developed for facilitating the communication of data between applications running on (or otherwise in communication with) a distributed medical scanner/workstation platform and repositories that are part of (or are otherwise in communication with) the scanner/workstation platform. Additionally, it would be advantageous if the new system and method facilitated communication with a wide variety of types of repositories, and facilitated communication of a variety of types of data via a variety of communication protocols.
Further, it would be advantageous if the new system and method facilitated communication regardless of whether different repositories (or the application programs) shared the same hosts, or operated on different hosts, including local or remote hosts. Additionally, it would be advantageous if the new system and method continued to work to facilitate communication even when additional repositories were added to the scanner/workstation platform or existing repositories were modified. Further, it would be advantageous if the new system and method were easy and relatively inexpensive to implement.
The present invention relates to a distributed medical scanner/workstation platform that includes a first repository, a second repository, and a host on which is running an application. The host is coupled to the first and second repositories and the application is capable of communication with each of the first and second repositories. The application is in communication with each of the first and second repositories by way of an API framework, where the API framework allows the application to communicate with each of the first and second repositories as if both repositories were identical. The API framework includes a plurality of commands concerning generic communication operations between the application and any of the repositories.
The present invention further relates to, in a distributed medical scanner/workstation platform, a software framework comprising a command class, and a plurality of generalized commands being selected from the group comprising a read command, a write command, a list command, a delete command and a ping command, where each of the generalized commands inherits from the command class. The software framework further includes a session class in an association with the command class, where the session class includes at least one of the generalized commands, and where the session class further includes a submit API that allows the at least one generalized command to be executed on a repository. The software framework additionally includes a repository class in an association with the session class, where the repository class includes a connect API, an initialize API and a shutdown API.
The present invention additionally relates to a method of facilitating the communication of data on a distributed medical scanner/workstation platform including at least one host and at least two repositories. The method includes programming, on the at least one host, an API framework that includes a plurality of commands inheriting from a commands class. The plurality of commands concerns generic communication operations between an application running on the host and any of the repositories. The method additionally includes establishing a session between the application and one of the repositories, where a session class exists in association with the commands class and also in association with a repository class. The method further includes receiving from the application a data set and one of commands that is associated with the data set. The method additionally includes executing a submit API so that the data set and the one of the commands are appropriately communicated to the one of the repositories in the session. The API framework allows the application to communicate with each of the first and second repositories as if both repositories were identical.
The present invention further relates to a method of facilitating the communication of data on a distributed medical scanner/workstation platform including at least one host and a plurality of repositories of various types. The method includes providing software which recognizes at least one generalized command selected from the group comprising a read command, a write command, a delete command, a list command, and a ping command, all of which inherit from a commands class. The method additionally includes establishing a session between an application running on the host and one of the repositories. The method further includes receiving a data set from the application and, associated with the data set, the at least one generalized command. The method further includes processing the received data set and the at least one generalized command so that the received data set and the at least one generalized command can be transmitted and accepted by the one of the repositories.